import Vue from 'vue'
import {
  Button,
  // 表单组件
  Form, FormItem, Input,
  // msg消息组件
  Message,
  // msgBox消息弹窗组件
  MessageBox,
  // 布局组件
  Container, Header, Aside, Main,
  // 侧边导航栏菜单组件
  Menu, Submenu, MenuItem,
  // Dropdown下拉菜单(用于导航栏的右侧个人中心)
  Dropdown, DropdownMenu, DropdownItem,
  // 面包屑导航
  Breadcrumb, BreadcrumbItem,
  // 卡片视图
  Card,
  // 栅格布局（layout）
  Row, Col,
  // table组件
  Table, TableColumn,
  // swich开关
  Switch,
  // tip提示
  Tooltip,
  // 分页
  Pagination,
  // Dialog对话框
  Dialog,
  // tag标签
  Tag,
  // 树形组件
  Tree,
  // 下拉框组件
  Select, Option,
  // Cascader 级联选择器
  Cascader,
  // Alert 警告 组件
  Alert,
  // tag标签栏 可切换的标签
  Tabs, TabPane,
  // 步骤条组件
  Steps, Step,
  // 多选框组
  CheckboxGroup, Checkbox,
  // 上传图片组件
  Upload

} from 'element-ui'

/**
 * 因为当前的elementUI中还没有跟新timeline组件，所以需要自己导入才能用
 *!想用使用timeline时间线组件，就要现在element.js同级目录下粘贴上时间线的文件夹
 *!然后通过import这两个组件进来才能进行全局注册

 *!要注意，导入时间线组件文件夹后，也要导入其css文件，否则时间线只有格式，没有样式
 *!导入css的位置就是你在哪个.vue文件中使用，就在那里的style中@import一下
 */
import Timeline from './timeline/index.js'
import TimelineItem from './timeline-item/index.js'

// 全局注册elementUI组件
//! 不能这样use，连着use虽然代码不会报错，但是运行的时候UI引入不进来！！
// Vue.use(FormItem, Input)
Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
Vue.use(Input)
Vue.use(Container)
Vue.use(Header)
Vue.use(Aside)
Vue.use(Main)
Vue.use(Menu)
Vue.use(Dropdown)
Vue.use(DropdownMenu)
Vue.use(DropdownItem)
Vue.use(Submenu)
Vue.use(MenuItem)
Vue.use(Breadcrumb)
Vue.use(BreadcrumbItem)
Vue.use(Card)
Vue.use(Row)
Vue.use(Col)
Vue.use(Table)
Vue.use(TableColumn)
Vue.use(Switch)
Vue.use(Tooltip)
Vue.use(Pagination)
Vue.use(Dialog)
Vue.use(Tag)
Vue.use(Tree)
Vue.use(Select)
Vue.use(Option)
Vue.use(Cascader)
Vue.use(Alert)
Vue.use(Tabs)
Vue.use(TabPane)
Vue.use(Steps)
Vue.use(Step)
Vue.use(CheckboxGroup)
Vue.use(Checkbox)
Vue.use(Upload)

// !引入的时间线组件的全局注册
Vue.use(Timeline)
Vue.use(TimelineItem)

// ? elementUI的Message需要用全局挂载的形式进行使用，所以用$message代替
Vue.prototype.$message = Message
// ? elementUI的MessageBox的confirm需要用全局挂载的形式进行使用，所以用$confirm代替
Vue.prototype.$confirm = MessageBox.confirm
